package com.goodfox.web.generic.attribute.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.RowBounds;

import com.goodfox.web.generic.attribute.entity.AtrType;
import com.goodfox.web.generic.attribute.entity.Attribute;

public interface AttributeMapper {
	
	/**
	 * 查询属性类型列表
	 * @param map
	 * @return
	 */
	List<AtrType> selectAtrTypeList(Map map);
	
	/**
	 * 查询属性类型列表（分页）
	 * @param map
	 * @return
	 */
	List<AtrType> selectAtrTypeList(Map map,RowBounds rowBounds);

	/**
	 * 查询属性类型总数
	 * @param map
	 * @return
	 */
	Long selectAtrTypeListCount(Map map);
	
	/**
	 * 查询属性类型
	 * @param typeValue
	 * @return
	 */
	AtrType selectAtrTypeByValue(String typeValue);
	
	/**
	 * 查询属性内容列表
	 * @param map
	 * @return
	 */
	List<Attribute> selectAttributeList(Map map);
	
	/**
	 * 查询属性内容列表（分页）
	 * @param map
	 * @return
	 */
	List<Attribute> selectAttributeList(Map map,RowBounds rowBounds);
	
	/**
	 * 查询属性内容列表数量
	 * @param map
	 * @return
	 */
	Long selectAttributeListCount(Map map);
	
	/**
	 * 查询属性内容列表（根据类型值）
	 * @param typeValue
	 * @return
	 */
	List<Attribute> selectAttributeListByTypeId(String typeValue);
	
	/**
	 * 查询属性内容
	 * @param attributeId
	 * @return
	 */
	Attribute selectAttributeById(String atrId);
	
	/**
	 * 新增属性内容
	 * @param attribute
	 */
	void insertAttribute(Attribute attribute);
	
	/**
	 * 修改属性内容
	 * @param attribute
	 */
	void updateAttribute(Attribute attribute);
	
	/**
	 * 根据属性类型值获取属性数量
	 * @param typeValue
	 * @return
	 */
	Long selectAttributeCountByType(String typeValue);
}
